1. Field of the Invention
The present invention relates to operating systems for computers. More specifically, the present invention relates to a method and an apparatus for assigning device identifiers that are unique across a distributed computing system.
2. Related Art
Operating systems for computers often facilitate accessing devices, such as disk drives and printers, through a pathname as well as an integer device identifier. For example, a disk drive may be referenced through a pathname, such as “/dev/rdsk/c0t0d0s0,” as well as through an integer device identifier, such as “5064.” This integer device identifier can be used by programmers and system administrators to access the device, and can also be used by device drivers to control the device. Note that if two device identifiers have the same value they are assumed to refer to the same device.
The use of device identifiers becomes complicated in a distributed computing system including multiple computing nodes coupled together by a network. Such a distributed computing system is typically controlled by a distributed operating system, which enables the multiple computing nodes to communicate with each other, and enables the computing nodes to share resources, such as devices.
Producing a unique pathname for a device in a distributed computing system is typically accomplished by inserting a name for the computing node into the pathname for the device. For example, the pathname “dev/node 1/rdsk/c0t0d0s0” refers to a device located on node 1.
However, assigning unique device numbers cannot be accomplished in the same way, because existing distributed operating systems provide no mechanism for combining node identifiers into device identifiers. Hence, local computing nodes typically assign their own local device identifiers. Consequently, the same identifier can potentially be assigned to different devices by different local nodes in the distributed computing system. It is possible to solve this problem by providing a mechanism to translate between local and global device identifiers. However, the process of maintaining such a system is cumbersome and inefficient.
What is needed is a method and an apparatus for assigning device identifiers that are unique across a distributed computing system.